# -*- coding: utf-8 -*-

# pip install xlrd
import xlrd


def read_excel():
    """读取excel文件"""

    # 文件名以及路径，如果路径或者文件名有中文给前面加一个 r
    workbook = xlrd.open_workbook(filename="xlsx.xlsx")
    # 返回文件中所有sheet的名字
    names = workbook.sheet_names()
    print(names)
    # 返回文件中所有sheet的列表
    sheet = workbook.sheets()[0]
    print(sheet)

    # 通过索引顺序获取
    sheet_index = 0
    sheet = workbook.sheet_by_index(sheet_index)
    print(sheet)
    # 通过名称获取
    sheet_name = "table1"
    sheet = workbook.sheet_by_name(sheet_name)
    print(sheet)
    # 以上三个函数都会返回一个xlrd.sheet.Sheet()对象

    # 检查某个sheet是否导入完毕
    sheet_loaded = workbook.sheet_loaded(sheet_name or sheet_index)

    # 行的操作
    nrows = sheet.nrows
    # 获取该sheet中的行数
    rowx = 1
    row = sheet.row(rowx=rowx)
    # 返回由该行中所有的单元格对象组成的列表

    row_slice = sheet.row_slice(rowx=rowx)
    # 返回由该行中所有的单元格对象组成的列表

    row_types = sheet.row_types(rowx=rowx, start_colx=0, end_colx=None)
    # 返回由该行中所有单元格的数据类型组成的列表；    
    # （0 empty（空的）,1 string（text）, 2 number, 3 date, 4 boolean, 5 error， 6 blank（空白表格））

    row_values = sheet.row_values(rowx=rowx, start_colx=0, end_colx=None)
    # 返回由该行中所有单元格的数据组成的列表

    row_len = sheet.row_len(rowx=rowx)
    # 返回该行的有效单元格长度，即这一行有多少个数据

    # 列操作
    ncols = sheet.ncols
    # 获取列表的有效列数
    colx = 1
    col = sheet.col(colx=colx, start_rowx=0, end_rowx=None)
    # 返回由该列中所有的单元格对象组成的列表

    col_slice = sheet.col_slice(colx=colx, start_rowx=0, end_rowx=None)
    # 返回由该列中所有的单元格对象组成的列表

    col_types = sheet.col_types(colx=colx, start_rowx=0, end_rowx=None)
    # 返回由该列中所有单元格的数据类型组成的列表

    col_values = sheet.col_values(colx=colx, start_rowx=0, end_rowx=None)
    # 返回由该列中所有单元格的数据组成的列表

    # 单元格操作
    cell = sheet.cell(rowx, colx)
    # 返回单元格对象

    cell_type = sheet.cell_type(rowx, colx)
    # 返回对应位置单元格中的数据类型

    cell_value = sheet.cell_value(rowx, colx)
    # 返回对应位置单元格中的数据

    pass


if __name__ == '__main__':
    # read_excel()

    write_excel()
    pass
